/*
 * FunctionDeclAst.h
 *
 *  Created on: 19 Nov 2010
 *      Author: kn308
 */

#ifndef FUNCTIONDECLAST_H_
#define FUNCTIONDECLAST_H_

#include <MAlice/Ast/Ast.h>
#include <MAlice/Ast/ListAst.h>
#include <MAlice/Ast/FunctionProtoAst.h>

namespace MAlice
{

class FunctionDeclAst: public MAlice::Ast
{
private:
	FunctionProtoAst* mProto;
	ListAst*          mBody;

public:
	FunctionDeclAst(location loc, FunctionProtoAst* proto, ListAst* body);
	virtual ~FunctionDeclAst();
	virtual llvm::Value* generate();
};

}

#endif /* FUNCTIONDECLAST_H_ */
